import { fileURLToPath, URL } from 'node:url'

import { type ConfigEnv, defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import { mockDevServerPlugin } from 'vite-plugin-mock-dev-server'

// https://vite.dev/config/
// export default defineConfig({
//   plugins: [
//     vue(),
//     vueDevTools(),
//     AutoImport({
//       resolvers: [ElementPlusResolver()],
//     }),
//     Components({
//       resolvers: [
//         ElementPlusResolver(),
//         // 组件使用格式： {prefix}-{collection}-{icon（选择的图标）}
//         IconsResolver({
//           // 前缀，不设置默认 i ，禁用设置 false
//           // prefix: "icon",   使用时：<icon-ep-home />
//           prefix: false,
//           enabledCollections: ['ep'],
//         }),
//       ],
//     }),
//     Icons({
//       autoInstall: true,
//     }),
//     createSvgIconsPlugin({
//       // 图标存放位置
//       iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))]
//     })
//   ],
//   resolve: {
//     alias: {
//       '@': fileURLToPath(new URL('./src', import.meta.url))
//     },
//   },
// })

export default defineConfig(({ mode }: ConfigEnv) => {
  const env = loadEnv(mode, process.cwd());
  console.log(env);
  return {
    plugins: [
      vue(),
      vueDevTools(),
      AutoImport({
        resolvers: [ElementPlusResolver()],
      }),
      Components({
        resolvers: [
          ElementPlusResolver(),
          // 组件使用格式： {prefix}-{collection}-{icon（选择的图标）}
          IconsResolver({
            // 前缀，不设置默认 i ，禁用设置 false
            // prefix: "icon",   使用时：<icon-ep-home />
            prefix: false,
            enabledCollections: ['ep'],
          }),
        ],
      }),
      Icons({
        autoInstall: true,
      }),
      createSvgIconsPlugin({
        // 图标存放位置
        iconDirs: [fileURLToPath(new URL('./src/assets/icons', import.meta.url))]
      }),
      mockDevServerPlugin(),
    ],
    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url))
      },
    },
    server: {
      // proxy: {
      //   [env.VITE_APP_BASE_API]: {
      //     target: 'http://lcoalhost:9527',
      //     changeOrigin: true,
      //     rewrite: (path) => path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
      //   },
      // },
      proxy: {
        '/dev-api': {
          target: 'http://jsonplaceholder.typicode.com',
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/dev-api/, '')
        },
      }
    },
  }
})
